home *** CD-ROM | disk | FTP | other *** search
/ Nejlepší České Hry / Nej české hry.iso / hry / plane arcade / planearcade.exe / tank3.bmp / menu.cpp < prev    next >
Encoding:
C/C++ Source or Header  |  2004-09-28  |  30.5 KB  |  1,301 lines

  1.  
  2.  
  3. #include "Main.h"
  4.  
  5. //----------------
  6. //Global
  7. //----------------
  8. MENU Menu;
  9.  
  10.  
  11. //inicializacia objektov
  12. //------------------------------------------------------------
  13. void MENU::Initialize()
  14. {
  15.  
  16.     //BackGrouund
  17.     BackGround.Create((float)Engine.Width+10 ,(float)Engine.Height+10,1);
  18.     BackGround.AddFrame("menu/background.bmp",GetColor(1,0,1,0));
  19.  
  20.     EnabledIntro = true;
  21.     EnabledMenu = true;
  22.  
  23.     //---------
  24.     //Loading
  25.     //---------
  26.     Progress.Create(32,32,1);
  27.     Progress.AddFrame("menu/progress.bmp",GetColor(1,0,1,0));
  28.     Progress.RelativeMode = true;
  29.  
  30.     Loading.Create(142,42,1);
  31.     Loading.AddFrame("menu/Loading.bmp",GetColor(1,0,1,0));
  32.     Loading.RelativeMode = true;
  33.  
  34.     DxFont.Create((int)FTRX(18.0f),FW_BOLD,"Arial");
  35.  
  36.     //---------
  37.     //Intro
  38.     //---------
  39.     TimeIntro = 0.0f;
  40.  
  41.     //logo3D Games
  42.     Logo3DGames.Create(384,86,1);
  43.     Logo3DGames.AddFrame("menu/logo3DGames.bmp",GetColor(1,0,1,0));
  44.     Logo3DGames.RelativeMode = true;
  45.  
  46.     //logo3D PLE
  47.     LogoPLE.Create(480,49,1);
  48.     LogoPLE.AddFrame("menu/logoPLE.bmp",GetColor(1,0,1,0));
  49.     LogoPLE.RelativeMode = true;
  50.  
  51.     //logo becher LogoBecher
  52.     LogoBecher.Create(141,152,1);
  53.     LogoBecher.AddFrame("menu/LogoBecher.bmp",GetColor(1,0,1,0));
  54.     LogoBecher.RelativeMode = true;
  55.  
  56.     //-----------------
  57.     //Becher Game
  58.     //-----------------
  59.     TimeBecherGame = 0.0f;
  60.     EnabledBecherGame = false;
  61.     
  62.     BecherGame.Create(189,77,1);
  63.     BecherGame.AddFrame("menu/bechergame.bmp",GetColor(1,0,1,0));
  64.     BecherGame.RelativeMode = true;
  65.  
  66.     //-----------------
  67.     //Menu
  68.     //-----------------
  69.  
  70.     //obecne
  71.     LogoPlane.Create(265,132,1);
  72.     LogoPlane.AddFrame("menu/logoplane.bmp",GetColor(1,0,1));
  73.     LogoPlane.RelativeMode = true;
  74.  
  75.     LogoAir.Create(127,132,1);
  76.     LogoAir.AddFrame("menu/logoair.bmp",GetColor(1,0,1));
  77.     LogoAir.RelativeMode = true;
  78.  
  79.     LogoArcade.Create(331,132,1);
  80.     LogoArcade.AddFrame("menu/logoarcade.bmp",GetColor(1,0,1));
  81.     LogoArcade.RelativeMode = true;
  82.  
  83.     LogoPilot.Create(463,385,1);
  84.     LogoPilot.AddFrame("menu/logopilot.bmp",GetColor(1,0,1));
  85.     LogoPilot.RelativeMode = true;
  86.  
  87.     //curzor
  88.     Cursor.Create(30,30,1);
  89.     Cursor.AddFrame("menu/cursor.bmp",GetColor(1.0f,1.0f,0.0f,1.0f));
  90.  
  91.     //main menu
  92.     TimeMainMenu = 0.0f;
  93.     EnabledMainMenu = false;
  94.     ModeMainMenu = 1;
  95.  
  96.     //campaing
  97.     Missions.RelativeMode = true;
  98.     Missions.Create(64,32,15);
  99.     Missions.AddFrame("menu/missions/1.bmp",GetColor(1,0,1));
  100.     Missions.AddFrame("menu/missions/2.bmp",GetColor(1,0,1));
  101.     Missions.AddFrame("menu/missions/3.bmp",GetColor(1,0,1));
  102.     Missions.AddFrame("menu/missions/4.bmp",GetColor(1,0,1));
  103.     Missions.AddFrame("menu/missions/5.bmp",GetColor(1,0,1));
  104.     Missions.AddFrame("menu/missions/6.bmp",GetColor(1,0,1));
  105.     Missions.AddFrame("menu/missions/7.bmp",GetColor(1,0,1));
  106.     Missions.AddFrame("menu/missions/8.bmp",GetColor(1,0,1));
  107.     Missions.AddFrame("menu/missions/9.bmp",GetColor(1,0,1));
  108.     Missions.AddFrame("menu/missions/10.bmp",GetColor(1,0,1));
  109.     Missions.AddFrame("menu/missions/11.bmp",GetColor(1,0,1));
  110.     Missions.AddFrame("menu/missions/12.bmp",GetColor(1,0,1));
  111.     Missions.AddFrame("menu/missions/13.bmp",GetColor(1,0,1));
  112.     Missions.AddFrame("menu/missions/14.bmp",GetColor(1,0,1));
  113.     Missions.AddFrame("menu/missions/15.bmp",GetColor(1,0,1));
  114.  
  115.     TimeCampaing = 0.0f;
  116.     EnabledCampaing = false;
  117.     ModeCampaing = 1;
  118.  
  119.     LoadArray();
  120.  
  121.     //credits
  122.     TimeCredits = 0.0f;
  123.     EnabledCredits = false;
  124.     ModeCredits = 1;
  125.  
  126.     CreditsFont.Create((int)FTRX(18.0f),FW_BOLD,"Courier");    
  127.  
  128.     LogoCredits.Create(308,300,1);
  129.     LogoCredits.AddFrame("menu/credits.bmp",GetColor(1,1,0,1));
  130.     LogoCredits.RelativeMode =  true;
  131.  
  132.     //campaing
  133.     ButtonCampaing.Create(180,40,1);
  134.     ButtonCampaing.RelativeMode = true;
  135.     if (Language == 0) ButtonCampaing.AddFrame("menu/eng/campaing.bmp",GetColor(1.0f,1.0f,0.0f,1.0f));
  136.     if (Language == 1) ButtonCampaing.AddFrame("menu/cz/campaing.bmp",GetColor(1.0f,1.0f,0.0f,1.0f));
  137.  
  138.     //battle
  139.     ButtonBattle.Create(180,40,1);
  140.     ButtonBattle.RelativeMode = true;
  141.     if (Language == 0) ButtonBattle.AddFrame("menu/eng/battle.bmp",GetColor(1.0f,1.0f,0.0f,1.0f));
  142.     if (Language == 1) ButtonBattle.AddFrame("menu/cz/battle.bmp",GetColor(1.0f,1.0f,0.0f,1.0f));
  143.  
  144.     //credits
  145.     ButtonCredits.Create(180,40,1);
  146.     ButtonCredits.RelativeMode = true;
  147.     if (Language == 0) ButtonCredits.AddFrame("menu/eng/credits.bmp",GetColor(1.0f,1.0f,0.0f,1.0f));
  148.     if (Language == 1) ButtonCredits.AddFrame("menu/cz/credits.bmp",GetColor(1.0f,1.0f,0.0f,1.0f));
  149.  
  150.     //exit
  151.     ButtonExit.Create(180,40,1);
  152.     ButtonExit.RelativeMode = true;
  153.     if (Language == 0) ButtonExit.AddFrame("menu/eng/exit.bmp",GetColor(1.0f,1.0f,0.0f,1.0f));
  154.     if (Language == 1) ButtonExit.AddFrame("menu/cz/exit.bmp",GetColor(1.0f,1.0f,0.0f,1.0f));
  155.  
  156.     //back
  157.     ButtonBack.Create(180,40,1);
  158.     ButtonBack.RelativeMode = true;
  159.     if (Language == 0) ButtonBack.AddFrame("menu/eng/back.bmp",GetColor(1.0f,1.0f,0.0f,1.0f));
  160.     if (Language == 1) ButtonBack.AddFrame("menu/cz/back.bmp",GetColor(1.0f,1.0f,0.0f,1.0f));
  161.  
  162.  
  163.     //-----------------
  164.     //Briefring
  165.     //-----------------
  166.     EnabledBriefring = false;
  167.  
  168.     LogoBriefring.Create(320,272,1);
  169.     ButtonRestart.Create(98,36,1);
  170.     ButtonContinue.Create(98,36,1);
  171.     ButtonEnd.Create(98,36,1);
  172.     
  173.     if (Language == 0)
  174.     {
  175.         ButtonRestart.AddFrame("menu/brief/but1eng.jpg",GetColor(1,0,1));
  176.         ButtonContinue.AddFrame("menu/brief/but2eng.jpg",GetColor(1,0,1));
  177.         ButtonEnd.AddFrame("menu/brief/but3eng.jpg",GetColor(1,0,1));
  178.     }
  179.  
  180.     if (Language == 1)
  181.     {
  182.         ButtonRestart.AddFrame("menu/brief/but1cz.jpg",GetColor(1,0,1));
  183.         ButtonContinue.AddFrame("menu/brief/but2cz.jpg",GetColor(1,0,1));
  184.         ButtonEnd.AddFrame("menu/brief/but3cz.jpg",GetColor(1,0,1));
  185.     }
  186.  
  187.     //-----------------
  188.     //GUI
  189.     //-----------------
  190.     Pilot.Create(72,72,7);
  191.     Pilot.AddFrame("menu/gui/pilot1.bmp",GetColor(1,0,1,0));
  192.     Pilot.AddFrame("menu/gui/pilot1fire.bmp",GetColor(1,0,1,0));
  193.     Pilot.AddFrame("menu/gui/pilot2.bmp",GetColor(1,0,1,0));
  194.     Pilot.AddFrame("menu/gui/pilot2fire.bmp",GetColor(1,0,1,0));
  195.     Pilot.AddFrame("menu/gui/pilot3.bmp",GetColor(1,0,1,0));
  196.     Pilot.AddFrame("menu/gui/pilot3fire.bmp",GetColor(1,0,1,0));
  197.     Pilot.AddFrame("menu/gui/pilotdeath.bmp",GetColor(1,0,1,0));
  198.  
  199.     Bevel.Create(148,81,1);
  200.     Bevel.AddFrame("menu/gui/bevel.bmp",GetColor(1.0f,1.0f,0,1.0f));
  201.     
  202.     GuiFont.Create(20,FW_BOLD,"Arial");    
  203.  
  204.     Kompas.Create(128,128,1);
  205.     if (Language == 0)
  206.         Kompas.AddFrame("menu/gui/kompaseng.bmp",GetColor(1,0,1));
  207.     if (Language == 1)
  208.         Kompas.AddFrame("menu/gui/kompascz.bmp",GetColor(1,0,1));
  209.  
  210.     Map.Create(147,147,1);
  211.     Map.AddFrame("menu/gui/mapa.bmp",GetColor(1.0f,1.0f,0.0f,1.0f));
  212.  
  213.     Frag.Create(15,15,6);
  214.     Frag.AddFrame("menu/gui/frag1.bmp",GetColor(1.0f,1.0f,1.0f,1.0f));
  215.     Frag.AddFrame("menu/gui/frag2.bmp",GetColor(1.0f,1.0f,1.0f,1.0f));
  216.     Frag.AddFrame("menu/gui/frag3.bmp",GetColor(1.0f,1.0f,1.0f,1.0f));
  217.     Frag.AddFrame("menu/gui/frag4.bmp",GetColor(1.0f,1.0f,1.0f,1.0f));
  218.     Frag.AddFrame("menu/gui/frag5.bmp",GetColor(1.0f,1.0f,1.0f,1.0f));
  219.     Frag.AddFrame("menu/gui/frag6.bmp",GetColor(1.0f,1.0f,1.0f,1.0f));
  220.  
  221.     TBack.Create(96,96,1);
  222.     TBack.AddFrame("menu/gui/tbk.bmp",GetColor(1.0f,0.0f,1.0f));
  223.  
  224.     TRuc.Create(26,78,1);
  225.     TRuc.AddFrame("menu/gui/truc.bmp",GetColor(1.0f,0.0f,1.0f));
  226.  
  227.     TBomb.Create(96,96,1);
  228.     TBomb.AddFrame("menu/gui/bombs.bmp",GetColor(1.0f,0.0f,1.0f));
  229.  
  230. }
  231.  
  232. //loadne briefring podla leveli
  233. //-----------------------------------------------------------
  234. void MENU::LoadBriefring(int LevelIndex)
  235. {
  236.     char Buffer[80];
  237.  
  238.     if (Language == 0)
  239.         sprintf(Buffer,"menu/brief/briefringeng%d.jpg",LevelIndex);
  240.     if (Language == 1)
  241.         sprintf(Buffer,"menu/brief/briefringcz%d.jpg",LevelIndex);
  242.  
  243.     LogoBriefring.ClearAllFrames();
  244.     LogoBriefring.AddFrame(Buffer,GetColor(1,0,1));
  245.  
  246. }
  247. //vykresli gui
  248. //-----------------------------------------------------------
  249. void MENU::DrawGui()
  250. {
  251.  
  252.     
  253.     //---------
  254.     //Pilot
  255.     //---------
  256.  
  257.     Pilot.Frame = 6.0f;
  258.  
  259.     if (SpitFire.Life > 0)
  260.     {
  261.         if (Input.MouseLeftDown)
  262.             Pilot.Frame = 5.0f;
  263.         else
  264.             Pilot.Frame = 4.0f;
  265.     }
  266.     
  267.     if (SpitFire.Life >= 30)
  268.     {
  269.         if (Input.MouseLeftDown)
  270.             Pilot.Frame = 3.0f;
  271.         else
  272.             Pilot.Frame = 2.0f;
  273.     }
  274.  
  275.     if (SpitFire.Life >= 60)
  276.     {
  277.         if (Input.MouseLeftDown)
  278.             Pilot.Frame = 1.0f;
  279.         else
  280.             Pilot.Frame = 0.0f;
  281.     }
  282.  
  283.     
  284.     //skore
  285.     char SScore[80];
  286.     if (SpitFire.FakeScore != SpitFire.Score)
  287.         SpitFire.FakeScore += 10;
  288.     sprintf(SScore,"%d",SpitFire.FakeScore);
  289.  
  290.     //vypocitaj cas
  291.     char STime[80];
  292.     float Stopky = Level.MaxTime - Level.StageTime;
  293.     int Minuty = (int) (Stopky/60.0f);
  294.     int Sekundy = ((int)Stopky) % 60;
  295.     if (Sekundy > 9)
  296.         sprintf(STime,"%d:%d",Minuty,Sekundy);
  297.     else
  298.         sprintf(STime,"%d:0%d",Minuty,Sekundy);
  299.  
  300.     //---------
  301.     //render
  302.     //---------
  303.  
  304.     Engine.SetBlendTrans();
  305.  
  306.         //kompas
  307.         if (SpitFire.ShowCompas)
  308.         {
  309.             Kompas.Pos = Get3D((float)Engine.Width/2.0f,(float)Engine.Height,0.0f);
  310.             Kompas.Rot = SpitFire.Rot.Y+0.55f;
  311.             Kompas.Render();
  312.         }
  313.  
  314.         //pilot render
  315.         Pilot.Pos = Get3D(Engine.Width-190.0f,40.0f,0.0f);
  316.         Pilot.Render();
  317.  
  318.         //ukazovatel zivota
  319.         Bevel.Pos = Get3D(Engine.Width-78.0f,40.0f,0.0f);
  320.         Bevel.Render();
  321.  
  322.         //otacky motora
  323.         TBack.Color.A = 0.8f;
  324.         TBack.Pos = Get3D(Engine.Width-80.0f,Engine.Height-60.0f,0.0f);
  325.         TBack.Render();
  326.         TRuc.Color.A = 0.8f;
  327.         TRuc.Rot = (SpitFire_MaxSpeed - SpitFire.Speed + 2.0f)/3.5f-1.4f; 
  328.         TRuc.Pos = Get3D(Engine.Width-80.0f,Engine.Height-47.0f,0.0f);
  329.         TRuc.Render();
  330.  
  331.         //pocet bomb
  332.         char sBombs[80];
  333.         sprintf(sBombs,"%d",SpitFire.Bombs);
  334.         TBomb.Color.A = 0.8f;
  335.         TBomb.Pos = Get3D(Engine.Width-180.0f,Engine.Height-60.0f,0.0f);
  336.         TBomb.Render();
  337.         GuiFont.Print(Engine.Width-188,Engine.Height-50,GetColor(1.0f,0.0f,0.0f,0.0f),sBombs);
  338.  
  339.         //pismo
  340.         GuiFont.Print(Engine.Width-135,18,GetColor(1.0f,0.0f,0.0f,0.0f),"Score: ");
  341.         GuiFont.Print(Engine.Width-80,18,GetColor(1.0f,0.28f,0.29f,0.25f),SScore);
  342.  
  343.         GuiFont.Print(Engine.Width-135,40,GetColor(1.0f,0.0f,0.0f,0.0f),"Time: ");
  344.         GuiFont.Print(Engine.Width-80,40,GetColor(1.0f,0.28f,0.29f,0.25f),STime);
  345.  
  346.     Engine.SetBlendNone();
  347.  
  348.  
  349. }
  350.  
  351. //vykresli mapu
  352. //-----------------------------------------------------------
  353. void MENU::DrawMap()
  354. {
  355.     if (SpitFire.ShowMap == false)
  356.         return;
  357.  
  358.     //pomocne
  359.     int i;
  360.     VECTOR3D MS;
  361.     float Mierka = 40.0f;
  362.     float Rozmer = 64.0f;
  363.  
  364.     //vypocitaj suradnice mapy
  365.     VECTOR3D MapSur = Get3D(80.0f,Engine.Height-80.0f,0.0f);
  366.  
  367.     //vypocitaj maticu spitfiri
  368.     D3DXMATRIX MatMap;
  369.     MatMap = GetMatrix(SpitFire.Pos,Get3D(0.0f,SpitFire.Rot.Y,0.0f),F_Scale);
  370.  
  371.     //zapni blending
  372.     Engine.SetBlendTrans();
  373.  
  374.     //vykresli podklad
  375.     Map.Color = GetColor(0.5f,1.0f,1.0f,1.0f);
  376.     Map.Pos = MapSur;
  377.     Map.Render();
  378.  
  379.     //vykresli poziciu hraca
  380.     Frag.Pos = MapSur;
  381.     Frag.Frame = 3.0f;
  382.     Frag.Render();
  383.  
  384.     //---------
  385.     //budovy
  386.     //---------
  387.     for (i=0;i<Max_Structures;i++)
  388.     {
  389.         if (Level.Structure[i].Life <= 0 ||
  390.             Level.Structure[i].Active == false)
  391.             continue;
  392.  
  393.         if (Level.Structure[i].Target == false &&
  394.             Level.Structure[i].Friendly == false)
  395.             continue;
  396.  
  397.  
  398.         MS = UnTransformPoint(Level.Structure[i].Pos,MatMap);
  399.  
  400.         MS.X = MS.X/Mierka;
  401.         MS.Y = MS.Z/Mierka;
  402.         MS.Z = 0.0f;
  403.  
  404.         if (MS.X >  Rozmer) MS.X =  Rozmer;
  405.         if (MS.X < -Rozmer) MS.X = -Rozmer;
  406.         if (MS.Y >  Rozmer) MS.Y =  Rozmer;
  407.         if (MS.Y < -Rozmer) MS.Y = -Rozmer;
  408.  
  409.         MS.X = MapSur.X + MS.X;
  410.         MS.Y = MapSur.Y - MS.Y;
  411.  
  412.         if (Level.Structure[i].Friendly == true) Frag.Frame = 5.0f;
  413.         if (Level.Structure[i].Target == true)   Frag.Frame = 0.0f;
  414.         Frag.Pos = MS;
  415.         Frag.Render();
  416.     
  417.     }
  418.  
  419.     //---------
  420.     //truck
  421.     //---------
  422.     for (i=0;i<Max_Trucks;i++)
  423.     {
  424.         if (Level.Truck[i].Life <= 0 || Level.Truck[i].Active == false)
  425.             continue;
  426.  
  427.         MS = UnTransformPoint(Level.Truck[i].Pos,MatMap);
  428.  
  429.         MS.X = MS.X/Mierka;
  430.         MS.Y = MS.Z/Mierka;
  431.         MS.Z = 0.0f;
  432.  
  433.         if (MS.X >  Rozmer) MS.X =  Rozmer;
  434.         if (MS.X < -Rozmer) MS.X = -Rozmer;
  435.         if (MS.Y >  Rozmer) MS.Y =  Rozmer;
  436.         if (MS.Y < -Rozmer) MS.Y = -Rozmer;
  437.  
  438.         MS.X = MapSur.X + MS.X;
  439.         MS.Y = MapSur.Y - MS.Y;
  440.  
  441.         //nastavi frame podla toho ci je target
  442.         if (Level.Truck[i].Target == true)    Frag.Frame = 0.0f;
  443.         if (Level.Truck[i].Target == false)    Frag.Frame = 1.0f;
  444.         Frag.Pos = MS;
  445.         Frag.Render();
  446.     
  447.     }
  448.  
  449.     //---------
  450.     //MesserSchmitt
  451.     //---------
  452.     for (i=0;i<Max_MesserSchmitt;i++)
  453.     {
  454.         if (Level.MesserSchmitt[i].Life <= 0 || Level.MesserSchmitt[i].Active == false)
  455.             continue;
  456.  
  457.         MS = UnTransformPoint(Level.MesserSchmitt[i].Pos,MatMap);
  458.  
  459.         MS.X = MS.X/Mierka;
  460.         MS.Y = MS.Z/Mierka;
  461.         MS.Z = 0.0f;
  462.  
  463.         if (MS.X >  Rozmer) MS.X =  Rozmer;
  464.         if (MS.X < -Rozmer) MS.X = -Rozmer;
  465.         if (MS.Y >  Rozmer) MS.Y =  Rozmer;
  466.         if (MS.Y < -Rozmer) MS.Y = -Rozmer;
  467.  
  468.         MS.X = MapSur.X + MS.X;
  469.         MS.Y = MapSur.Y - MS.Y;
  470.  
  471.         Frag.Frame = 2.0f;
  472.         Frag.Pos = MS;
  473.         Frag.Render();
  474.     
  475.     }
  476.  
  477.     //---------
  478.     //Volker
  479.     //---------
  480.     for (i=0;i<Max_Volkers;i++)
  481.     {
  482.         if (Level.Volker[i].Life <= 0 || Level.Volker[i].Active == false)
  483.             continue;
  484.  
  485.         MS = UnTransformPoint(Level.Volker[i].Pos,MatMap);
  486.  
  487.         MS.X = MS.X/Mierka;
  488.         MS.Y = MS.Z/Mierka;
  489.         MS.Z = 0.0f;
  490.  
  491.         if (MS.X >  Rozmer) MS.X =  Rozmer;
  492.         if (MS.X < -Rozmer) MS.X = -Rozmer;
  493.         if (MS.Y >  Rozmer) MS.Y =  Rozmer;
  494.         if (MS.Y < -Rozmer) MS.Y = -Rozmer;
  495.  
  496.         MS.X = MapSur.X + MS.X;
  497.         MS.Y = MapSur.Y - MS.Y;
  498.  
  499.         Frag.Frame = 2.0f;
  500.         Frag.Pos = MS;
  501.         Frag.Render();
  502.     
  503.     }
  504.  
  505.     //---------
  506.     //Bombarder
  507.     //---------
  508.     for (i=0;i<Max_Bombarders;i++)
  509.     {
  510.         if (Level.Bombarder[i].Life <= 0 || Level.Bombarder[i].Active == false)
  511.             continue;
  512.  
  513.         MS = UnTransformPoint(Level.Bombarder[i].Pos,MatMap);
  514.  
  515.         MS.X = MS.X/Mierka;
  516.         MS.Y = MS.Z/Mierka;
  517.         MS.Z = 0.0f;
  518.  
  519.         if (MS.X >  Rozmer) MS.X =  Rozmer;
  520.         if (MS.X < -Rozmer) MS.X = -Rozmer;
  521.         if (MS.Y >  Rozmer) MS.Y =  Rozmer;
  522.         if (MS.Y < -Rozmer) MS.Y = -Rozmer;
  523.  
  524.         MS.X = MapSur.X + MS.X;
  525.         MS.Y = MapSur.Y - MS.Y;
  526.  
  527.         Frag.Frame = 4.0f;
  528.         Frag.Pos = MS;
  529.         Frag.Render();
  530.     
  531.     }
  532.  
  533.  
  534.     //vypni blending
  535.     Engine.SetBlendNone();
  536.  
  537. }
  538.  
  539. //refresh intra
  540. //-----------------------------------------------------------
  541. void MENU::RefreshIntro()
  542. {
  543.  
  544.     //casovac
  545.     TimeIntro += PowerTime(1.0f);
  546.  
  547.     //background
  548.     BackGround.Center(Get3D(0.5f,0.5f,0.0f));
  549.     BackGround.Render();
  550.  
  551.  
  552.     //logo3D Games
  553.     Logo3DGames.Pos.Y = 300.0f;
  554.     if (TimeIntro < 1000.0f)
  555.         Logo3DGames.Pos.X = -300.0f+(TimeIntro/1.45f);
  556.     else if (TimeIntro > 3000.0f)
  557.         Logo3DGames.Pos.X = -300.0f+((4000.0f-TimeIntro)/1.45f);
  558.         
  559.     
  560.     Logo3DGames.Render();
  561.     
  562.     //logoPLE
  563.     LogoPLE.Pos.X = 400.0f;
  564.     if (TimeIntro < 1000.0f)
  565.         LogoPLE.Pos.Y = 710.0f-(TimeIntro/7.0f);
  566.     else if (TimeIntro > 3000.0f)
  567.         LogoPLE.Pos.Y = 710.0f-((4000.0f-TimeIntro)/7.0f);
  568.  
  569.     LogoPLE.Render();
  570.  
  571.     //koniec intra
  572.     if (TimeIntro > 4000.0f || Input.KeyPRESS[DIK_SPACE])
  573.     {
  574.         EnabledIntro = false;
  575.         EnabledBecherGame = true;
  576.     }
  577. }
  578.  
  579. //refresh becher game loga
  580. //-----------------------------------------------------------
  581. void MENU::RefreshBecherGame()
  582. {
  583.  
  584.     //casovac
  585.     TimeBecherGame += PowerTime(0.001f);
  586.  
  587.     //background
  588.     BackGround.Center(Get3D(0.5f,0.5f,0.0f));
  589.     BackGround.Render();
  590.  
  591.     //becher game
  592.     BecherGame.Pos.Y = 300.0f;
  593.     BecherGame.Pos.X = 400.0f;
  594.     if (TimeBecherGame < 1.0f)
  595.         BecherGame.Scale = TimeBecherGame;
  596.     else if (TimeBecherGame > 3.0f)
  597.         BecherGame.Scale = 4.0f-TimeBecherGame;
  598.         
  599.     Engine.SetBlendTrans();
  600.         BecherGame.Render();
  601.     Engine.SetBlendNone();
  602.  
  603.     //koniec intra
  604.     if (TimeBecherGame > 4.0f || Input.KeyPRESS[DIK_SPACE])
  605.     {
  606.         EnabledBecherGame = false;
  607.         EnabledMainMenu = true;
  608.     }
  609. }
  610.  
  611.  
  612. //refresh hlavneho menu
  613. //----------------------------------------------------------
  614. void MENU::RefreshMainMenu()
  615. {
  616.  
  617.     //reset farieb buttonov
  618.     ButtonCampaing.Color = GetColor(1.0f,72/255.0f,71/255.0f,58/255.0f);
  619.     ButtonBattle.Color = GetColor(1.0f,72/255.0f,71/255.0f,58/255.0f);
  620.     ButtonExit.Color = GetColor(1.0f,72/255.0f,71/255.0f,58/255.0f);
  621.     ButtonCredits.Color = GetColor(1.0f,72/255.0f,71/255.0f,58/255.0f);
  622.     ButtonBack.Color = GetColor(1.0f,72/255.0f,71/255.0f,58/255.0f);
  623.  
  624.     //---------
  625.     //mody
  626.     //---------
  627.  
  628.     //vytahovanie logo
  629.     //---------------------
  630.     if (ModeMainMenu == 1)
  631.     {
  632.         TimeMainMenu += PowerTime(0.001f);
  633.         if (TimeMainMenu > 1.0f)
  634.         {
  635.             TimeMainMenu = 1.0f;
  636.             ModeMainMenu = 2;
  637.         }
  638.     }
  639.  
  640.     //vytahovanie buttony
  641.     //-----------------------
  642.     if (ModeMainMenu  == 2)
  643.     {
  644.         TimeMainMenu += PowerTime(0.001f);
  645.         if (TimeMainMenu > 2.0f)
  646.         {
  647.             TimeMainMenu = 2.0f;
  648.             ModeMainMenu  = 3;
  649.         }
  650.     }
  651.  
  652.     //zatahovanie buttony - do campaing
  653.     //----------------------------------------
  654.     if (ModeMainMenu  == 4)
  655.     {
  656.         TimeMainMenu -= PowerTime(0.001f);
  657.         if (TimeMainMenu < 1.0f)
  658.         {
  659.             ModeMainMenu  = 2;
  660.             TimeMainMenu = 1.0f;
  661.             EnabledMainMenu = false;
  662.             EnabledCampaing = true;
  663.  
  664.         }
  665.     }
  666.  
  667.     //zatahovanie buttony - do battle
  668.     //------------------------------------
  669.     if (ModeMainMenu  == 5)
  670.     {
  671.         TimeMainMenu -= PowerTime(0.001f);
  672.         if (TimeMainMenu < 0.0f)
  673.         {
  674.             ModeMainMenu  = 1;
  675.             TimeMainMenu = 0.0f;
  676.             EnabledMenu = false;
  677.  
  678.             //nakonfigurovanie levelu
  679.             Level.StartGame(0);
  680.         }
  681.  
  682.     }
  683.  
  684.     //zatahovanie buttony - do credits
  685.     //-----------------------------------
  686.     if (ModeMainMenu  == 6)
  687.     {
  688.         TimeMainMenu -= PowerTime(0.001f);
  689.         if (TimeMainMenu < 1.0f)
  690.         {
  691.             ModeMainMenu  = 2;
  692.             EnabledMainMenu = false;
  693.             EnabledCredits = true;
  694.             TimeMainMenu = 1.0f;
  695.         }
  696.         
  697.     }
  698.  
  699.     //zatahovanie buttony - do exit
  700.     //------------------------------
  701.     if (ModeMainMenu  == 7)
  702.     {
  703.         TimeMainMenu -= PowerTime(0.001f);
  704.         if (TimeMainMenu < 0.0f)
  705.         {
  706.             PostQuitMessage(0);
  707.         }
  708.     }
  709.  
  710.     //stand
  711.     //--------------------
  712.     if (ModeMainMenu  == 3)
  713.     {        
  714.         //campaing
  715.         if (ButtonCampaing.MousePick(Input.Mouse) == false)
  716.             ButtonCampaing.Color = GetColor(1.0f,72/255.0f,71/255.0f,58/255.0f);
  717.         else
  718.         {
  719.             ButtonCampaing.Color = GetColor(1.0f,0.0f,0.0f,0.0f);
  720.             if (Input.MouseLeftPress == true)
  721.                 ModeMainMenu = 4;
  722.         }
  723.  
  724.         //battle
  725.         if (ButtonBattle.MousePick(Input.Mouse) == false)
  726.             ButtonBattle.Color = GetColor(1.0f,72/255.0f,71/255.0f,58/255.0f);
  727.         else
  728.         {            
  729.             ButtonBattle.Color = GetColor(1.0f,0.0f,0.0f,0.0f);
  730.             if (Input.MouseLeftPress == true)
  731.                 ModeMainMenu = 5;
  732.         }
  733.  
  734.         //credits
  735.         if (ButtonCredits.MousePick(Input.Mouse) == false)
  736.             ButtonCredits.Color = GetColor(1.0f,72/255.0f,71/255.0f,58/255.0f);
  737.         else
  738.         {
  739.             ButtonCredits.Color = GetColor(1.0f,0.0f,0.0f,0.0f);
  740.             if (Input.MouseLeftPress == true)
  741.                 ModeMainMenu = 6;
  742.         }
  743.     
  744.         //exit
  745.         if (ButtonExit.MousePick(Input.Mouse) == false)
  746.             ButtonExit.Color = GetColor(1.0f,72/255.0f,71/255.0f,58/255.0f);
  747.         else
  748.         {
  749.             ButtonExit.Color = GetColor(1.0f,0.0f,0.0f,0.0f);
  750.             if (Input.MouseLeftPress == true)
  751.                 ModeMainMenu = 7;
  752.         }
  753.  
  754.  
  755.     }
  756.  
  757.     //--------
  758.     //Render
  759.     //--------
  760.  
  761.     BackGround.Center(Get3D(0.5f,0.5f,0.0f));
  762.     BackGround.Render();
  763.  
  764.     //alias time - prevedie cas celkovy pre jednotlive skupiny
  765.     //buttony alebo loga 
  766.     float LTime = TimeMainMenu; if (LTime>1.0f) LTime = 1.0f;
  767.     float BTime = TimeMainMenu-1.0f;
  768.  
  769.     LogoPlane.Pos.X = -300.0f + (LTime)*460.0f;
  770.     LogoPlane.Pos.Y = 90.0f;
  771.     LogoPlane.Render();
  772.  
  773.     LogoAir.Pos.X = -200.0f + (LTime)*565.0f;
  774.     LogoAir.Pos.Y =  500.0f - (LTime)*415.0f;
  775.     LogoAir.Render();
  776.  
  777.     LogoArcade.Pos.X = 600.0f ;
  778.     LogoArcade.Pos.Y = -70.0f + (LTime)*160.0f;
  779.     LogoArcade.Render();
  780.  
  781.     LogoPilot.Pos.X = (1200.0f)-(LTime)*620.0f;
  782.     LogoPilot.Pos.Y = 100+(1.0f)*330.0f;
  783.     LogoPilot.Render();
  784.  
  785.     LogoBecher.Pos.X = 74.0f ;
  786.     LogoBecher.Pos.Y = 500.0f;
  787.     if (BTime > 0.0f) LogoBecher.Scale = BTime;
  788.     else LogoBecher.Scale = 0.0f;
  789.     LogoBecher.Render();
  790.  
  791.  
  792.     //buttons & mouse
  793.     Engine.SetBlendTrans();
  794.  
  795.     ButtonCampaing.Pos.X = -250.0f + (BTime)*460.0f;
  796.     ButtonCampaing.Pos.Y = 230.0f;
  797.     ButtonCampaing.Render();
  798.  
  799.     ButtonBattle.Pos.X = -250.0f + (BTime)*440.0f;
  800.     ButtonBattle.Pos.Y = 280.0f;
  801.     ButtonBattle.Render();
  802.  
  803.     ButtonCredits.Pos.X = -250.0f + (BTime)*420.0f;
  804.     ButtonCredits.Pos.Y = 330.0f;
  805.     ButtonCredits.Render();
  806.  
  807.     ButtonExit.Pos.X = -250.0f + (BTime)*400.0f;
  808.     ButtonExit.Pos.Y = 380.0f;
  809.     ButtonExit.Render();
  810.  
  811.     //cursor
  812.     Cursor.Pos.X = Input.Mouse.X + 15;
  813.     Cursor.Pos.Y = Input.Mouse.Y + 15;
  814.     Cursor.Render();
  815.  
  816.     Engine.SetBlendNone();
  817.  
  818.     //program info
  819.     CreditsFont.Print(20,Engine.Height-((int)FTRX(22.0f)),GetColor(1.0f,0.0f,0.0f,0.0f),
  820.                      ProgramInfo);
  821.  
  822. }
  823.  
  824. //refresh credits
  825. //----------------------------------------------------------
  826. void MENU::RefreshCampaing()
  827. {
  828.  
  829.     //vytahovanie
  830.     if (ModeCampaing == 1)
  831.     {
  832.         TimeCampaing += PowerTime(0.001f);
  833.         if (TimeCampaing > 1.0f)
  834.         {
  835.             ModeCampaing = 2;
  836.             TimeCampaing = 1.0f;
  837.         }
  838.     }
  839.  
  840.     //zatahovanie
  841.     if (ModeCampaing == 3)
  842.     {
  843.         TimeCampaing -= PowerTime(0.001f);
  844.         if (TimeCampaing < 0.0f)
  845.         {
  846.             ModeCampaing = 1;
  847.             EnabledMainMenu = true;
  848.             EnabledCampaing = false;
  849.             TimeCampaing = 0.0f;
  850.         }
  851.  
  852.     }
  853.  
  854.     //zatahovanie do hry
  855.     if (ModeCampaing == 4)
  856.     {
  857.         TimeCampaing -= PowerTime(0.001f);
  858.         if (TimeCampaing < 0.0f)
  859.         {
  860.             ModeCampaing = 1;
  861.             EnabledMenu = false;
  862.             TimeCampaing = 0.0f;
  863.  
  864.             //nakonfigurovanie levelu
  865.             Level.StartGame(CampaingLevelIndex);
  866.         }
  867.  
  868.     }
  869.  
  870.     //stand by
  871.     if (ModeCampaing ==2)
  872.     {
  873.         //back
  874.         if (ButtonBack.MousePick(Input.Mouse) == false)
  875.             ButtonBack.Color = GetColor(1.0f,72/255.0f,71/255.0f,58/255.0f);
  876.         else
  877.         {            
  878.             ButtonBack.Color = GetColor(1.0f,0.0f,0.0f,0.0f);
  879.             if (Input.MouseLeftPress == true)
  880.                 ModeCampaing = 3;
  881.         }
  882.  
  883.     }
  884.  
  885.     //back
  886.     BackGround.Center(Get3D(0.5f,0.5f,0.0f));
  887.     BackGround.Render();
  888.  
  889.     //render logos
  890.     float LTime = TimeMainMenu;
  891.  
  892.     LogoPlane.Pos.X = -300.0f + (LTime)*460.0f;
  893.     LogoPlane.Pos.Y = 90.0f;
  894.     LogoPlane.Render();
  895.  
  896.     LogoAir.Pos.X = -200.0f + (LTime)*565.0f;
  897.     LogoAir.Pos.Y =  500.0f - (LTime)*415.0f;
  898.     LogoAir.Render();
  899.  
  900.     LogoArcade.Pos.X = 600.0f ;
  901.     LogoArcade.Pos.Y = -70.0f + (LTime)*160.0f;
  902.     LogoArcade.Render();
  903.  
  904.     LogoPilot.Pos.X = (1200.0f)-(LTime)*620.0f;
  905.     LogoPilot.Pos.Y = 100+(LTime)*330.0f;
  906.     LogoPilot.Render();
  907.  
  908.     //program info
  909.     CreditsFont.Print(20,Engine.Height-((int)FTRX(22.0f)),GetColor(1.0f,0.0f,0.0f,0.0f),
  910.                      ProgramInfo);
  911.  
  912.  
  913.     //Missions
  914.     //----------
  915.     for (int y=0;y<5;y++)
  916.     {
  917.         for (int x=0;x<3;x++)
  918.         {
  919.  
  920.             Missions.Frame = float (y*3+x);
  921.             Missions.Pos.X = (-300.0f + x*80.0f) + TimeCampaing*400.0f;
  922.             Missions.Pos.Y =   200.0f + y*70.0f;
  923.             if (y*3+x+1 <=  MaxMission)
  924.             {
  925.                 Missions.Color = GetColor(1.0f,1.0f,1.0f);
  926.                 Missions.Render();
  927.                 if (Missions.MousePick(Input.Mouse) == true &&
  928.                     Input.MouseLeftPress == true)
  929.                 {
  930.                     CampaingLevelIndex = y*3+x+1;
  931.                     ModeCampaing = 4;
  932.                 }
  933.             }
  934.             else
  935.             {
  936.                 Missions.Color = GetColor(0.5f,0.45f,0.30f);
  937.                 Missions.Render();
  938.             }
  939.  
  940.         }
  941.     }
  942.     
  943.  
  944.     Engine.SetBlendTrans();
  945.  
  946.         //buttonback
  947.         ButtonBack.Pos.X = 400.0f;
  948.         ButtonBack.Pos.Y = 650.0f - (TimeCampaing)*110.0f;
  949.         ButtonBack.Render();
  950.  
  951.         //cursor
  952.         Cursor.Pos.X = Input.Mouse.X + 15;
  953.         Cursor.Pos.Y = Input.Mouse.Y + 15;
  954.         Cursor.Render();
  955.  
  956.     Engine.SetBlendNone();
  957.  
  958. }
  959.  
  960. //refresh credits
  961. //----------------------------------------------------------
  962. void MENU::RefreshCredits()
  963. {
  964.  
  965.     //vytahovanie
  966.     if (ModeCredits == 1)
  967.     {
  968.         TimeCredits += PowerTime(0.001f);
  969.         if (TimeCredits > 1.0f)
  970.         {
  971.             ModeCredits = 2;
  972.             TimeCredits = 1.0f;
  973.         }
  974.     }
  975.  
  976.     //zatahovanie
  977.     if (ModeCredits == 3)
  978.     {
  979.         TimeCredits -= PowerTime(0.001f);
  980.         if (TimeCredits < 0.0f)
  981.         {
  982.             ModeCredits = 1;
  983.             EnabledMainMenu = true;
  984.             EnabledCredits = false;
  985.             TimeCredits = 0.0f;
  986.         }
  987.  
  988.     }
  989.  
  990.     //stand by
  991.     if (ModeCredits ==2)
  992.     {
  993.         //back
  994.         if (ButtonBack.MousePick(Input.Mouse) == false)
  995.             ButtonBack.Color = GetColor(1.0f,72/255.0f,71/255.0f,58/255.0f);
  996.         else
  997.         {            
  998.             ButtonBack.Color = GetColor(1.0f,0.0f,0.0f,0.0f);
  999.             if (Input.MouseLeftPress == true)
  1000.                 ModeCredits = 3;
  1001.         }
  1002.  
  1003.     }
  1004.  
  1005.     //back
  1006.     BackGround.Center(Get3D(0.5f,0.5f,0.0f));
  1007.     BackGround.Render();
  1008.  
  1009.     //render logos
  1010.     float LTime = TimeMainMenu;
  1011.  
  1012.     LogoPlane.Pos.X = -300.0f + (LTime)*460.0f;
  1013.     LogoPlane.Pos.Y = 90.0f;
  1014.     LogoPlane.Render();
  1015.  
  1016.     LogoAir.Pos.X = -200.0f + (LTime)*565.0f;
  1017.     LogoAir.Pos.Y =  500.0f - (LTime)*415.0f;
  1018.     LogoAir.Render();
  1019.  
  1020.     LogoArcade.Pos.X = 600.0f ;
  1021.     LogoArcade.Pos.Y = -70.0f + (LTime)*160.0f;
  1022.     LogoArcade.Render();
  1023.  
  1024.     LogoPilot.Pos.X = (1200.0f)-(LTime)*620.0f;
  1025.     LogoPilot.Pos.Y = 100+(LTime)*330.0f;
  1026.     LogoPilot.Render();
  1027.  
  1028.     //credits
  1029.     LogoCredits.Pos.X = -300.0f + (TimeCredits)*500.0f;
  1030.     LogoCredits.Pos.Y = 340.0f;
  1031.     LogoCredits.Render();
  1032.  
  1033.     //mena
  1034.     if (ModeCredits ==2)
  1035.     {
  1036.         CreditsFont.Print((int)FTRX(80.0f),(int)FTRY(225.0f),GetColor(1.0f,0.0f,0.0f,0.0f),
  1037.                      "Peter Adamcik");
  1038.  
  1039.         CreditsFont.Print((int)FTRX(80.0f),(int)FTRY(265.0f),GetColor(1.0f,0.0f,0.0f,0.0f),
  1040.                      "Simon Meszaros, Peter Adamcik");
  1041.     
  1042.         CreditsFont.Print((int)FTRX(80.0f),(int)FTRY(305.0f),GetColor(1.0f,0.0f,0.0f,0.0f),
  1043.                      "Martin Hubacek");
  1044.  
  1045.         CreditsFont.Print((int)FTRX(80.0f),(int)FTRY(345.0f),GetColor(1.0f,0.0f,0.0f,0.0f),
  1046.                      "www.HS23.tk - for great music, yeaah..");
  1047.  
  1048.         CreditsFont.Print((int)FTRX(80.0f),(int)FTRY(365.0f),GetColor(1.0f,0.0f,0.0f,0.0f),
  1049.                      "Wu Kaihong - for great music");
  1050.  
  1051.         CreditsFont.Print((int)FTRX(80.0f),(int)FTRY(385.0f),GetColor(1.0f,0.0f,0.0f,0.0f),
  1052.                      "Blazke,Denisovi,Swarmovi,Ivantovi,...");
  1053.  
  1054.         CreditsFont.Print((int)FTRX(80.0f),(int)FTRY(405.0f),GetColor(1.0f,0.0f,0.0f,0.0f),
  1055.                      "www.bloguje.cz - for great blog system");
  1056.     
  1057.         CreditsFont.Print((int)FTRX(80.0f),(int)FTRY(425.0f),GetColor(1.0f,0.0f,0.0f,0.0f),
  1058.                      "www.ceskehry.cz - for hosting, support, forum, magazin");
  1059.  
  1060.         CreditsFont.Print((int)FTRX(80.0f),(int)FTRY(445.0f),GetColor(1.0f,0.0f,0.0f,0.0f),
  1061.                      "forum.animacia.sk - for great people");
  1062.  
  1063.         CreditsFont.Print((int)FTRX(80.0f),(int)FTRY(465.0f),GetColor(1.0f,0.0f,0.0f,0.0f),
  1064.                      "www.codesampler.com - for great source codes");
  1065.  
  1066.         CreditsFont.Print((int)FTRX(80.0f),(int)FTRY(485.0f),GetColor(1.0f,0.0f,0.0f,0.0f),
  1067.                      "www.microsoft.com - for great development software");
  1068.  
  1069.         CreditsFont.Print((int)FTRX(80.0f),(int)FTRY(505.0f),GetColor(1.0f,0.0f,0.0f,0.0f),
  1070.                      "Adobe, Discreet - for great software");
  1071.     }
  1072.  
  1073.     //program info
  1074.     CreditsFont.Print(20,Engine.Height-((int)FTRX(22.0f)),GetColor(1.0f,0.0f,0.0f,0.0f),
  1075.                      ProgramInfo);
  1076.  
  1077.     Engine.SetBlendTrans();
  1078.     
  1079.         //buttonback
  1080.         ButtonBack.Pos.X = 400.0f;
  1081.         ButtonBack.Pos.Y = 650.0f - (TimeCredits)*110.0f;
  1082.         ButtonBack.Render();
  1083.  
  1084.         //cursor
  1085.         Cursor.Pos.X = Input.Mouse.X + 15;
  1086.         Cursor.Pos.Y = Input.Mouse.Y + 15;
  1087.         Cursor.Render();
  1088.  
  1089.     Engine.SetBlendNone();
  1090.  
  1091. }
  1092.  
  1093. //refresh briefring
  1094. //----------------------------------------------------------
  1095. void MENU::RefreshBriefring()
  1096. {
  1097.     
  1098.     //zastav zvuky
  1099.     //--------------
  1100.     Level.StopAllSounds();
  1101.  
  1102.     //LogoBriefring
  1103.     //-------------
  1104.     if (LogoBriefring.MousePick(Input.Mouse))
  1105.         LogoBriefring.Color.A = 1.0f;
  1106.     else
  1107.         LogoBriefring.Color.A = 1.0f;
  1108.     LogoBriefring.Center(Get3D(0.5f,0.5f,0.0f));
  1109.     LogoBriefring.Frame = 0.0f;
  1110.     Engine.SetBlendTrans();
  1111.         LogoBriefring.Render();
  1112.     Engine.SetBlendNone();
  1113.  
  1114.     //buttonrestart
  1115.     //-------------
  1116.     if (ButtonRestart.MousePick(Input.Mouse))
  1117.         ButtonRestart.Color.A = 1.0f;
  1118.     else
  1119.         ButtonRestart.Color.A = 0.6f;
  1120.     ButtonRestart.Pos.X = Engine.Width/2.0f - 110.0f;
  1121.     ButtonRestart.Pos.Y = Engine.Height/2.0f + 160.0f;
  1122.     Engine.SetBlendTrans();
  1123.         ButtonRestart.Render();
  1124.     Engine.SetBlendNone();
  1125.  
  1126.     //buttoncontinue
  1127.     //-------------
  1128.     if (ButtonContinue.MousePick(Input.Mouse))
  1129.         ButtonContinue.Color.A = 1.0f;
  1130.     else
  1131.         ButtonContinue.Color.A = 0.6f;
  1132.     ButtonContinue.Pos.X = Engine.Width/2.0f ;
  1133.     ButtonContinue.Pos.Y = Engine.Height/2.0f + 160.0f;
  1134.     Engine.SetBlendTrans();
  1135.         ButtonContinue.Render();
  1136.     Engine.SetBlendNone();
  1137.  
  1138.     //buttonend
  1139.     //-------------
  1140.     if (ButtonEnd.MousePick(Input.Mouse))
  1141.         ButtonEnd.Color.A = 1.0f;
  1142.     else
  1143.         ButtonEnd.Color.A = 0.6f;
  1144.     ButtonEnd.Pos.X = Engine.Width/2.0f + 110.0f;
  1145.     ButtonEnd.Pos.Y = Engine.Height/2.0f + 160.0f;
  1146.     Engine.SetBlendTrans();
  1147.         ButtonEnd.Render();
  1148.     Engine.SetBlendNone();
  1149.  
  1150.     //cursor
  1151.     //-------
  1152.     Engine.SetBlendTrans();
  1153.         Cursor.Pos.X = Input.Mouse.X + 15;
  1154.         Cursor.Pos.Y = Input.Mouse.Y + 15;
  1155.         Cursor.Render();
  1156.     Engine.SetBlendNone();
  1157.  
  1158.     //restart
  1159.     //---------
  1160.     if ((ButtonRestart.MousePick(Input.Mouse) == true) &&
  1161.         (Input.MouseLeftPress == true))
  1162.     {
  1163.         Level.StartGame(Level.LevelIndex);
  1164.         Menu.EnabledBriefring = false;    
  1165.  
  1166.         //aby spitfire nestrielal
  1167.         SpitFire.BulletTime = -400.0f;
  1168.  
  1169.     }
  1170.  
  1171.     //pokracovat v hre
  1172.     //-----------------
  1173.     if ((ButtonContinue.MousePick(Input.Mouse) == true) &&
  1174.         (Input.MouseLeftPress == true))
  1175.     {
  1176.         Menu.EnabledBriefring = false;    
  1177.  
  1178.         //aby spitfire nestrielal
  1179.         SpitFire.BulletTime = -400.0f;
  1180.     }
  1181.  
  1182.     //koniec - navrat do menu
  1183.     //-----------------------
  1184.     if ((ButtonEnd.MousePick(Input.Mouse) == true) &&
  1185.         (Input.MouseLeftPress == true))
  1186.     {
  1187.         Menu.EnabledBriefring = false;    
  1188.  
  1189.         //aby spitfire nestrielal
  1190.         SpitFire.BulletTime = -400.0f;
  1191.  
  1192.         //koniec misie
  1193.         SpitFire.MissionExit();
  1194.     }
  1195.  
  1196.     //koniec - klavesnica
  1197.     //------------------------
  1198.     if (Input.KeyPRESS[DIK_RETURN] == true)
  1199.     {
  1200.         //koniec briefringu
  1201.         Menu.EnabledBriefring = false;    
  1202.     }
  1203.  
  1204.  
  1205. }
  1206.  
  1207. //nacita ktore misie su pristupne
  1208. //----------------------------------------------------------
  1209. void MENU::LoadArray()
  1210. {
  1211.     FILE *File = NULL;
  1212.     File = fopen("menu/array.dat","r");
  1213.  
  1214.     if (File == NULL) LogPrint("Nemozem otvorit array.dat");
  1215.  
  1216.     fscanf(File,"%d",&MaxMission);
  1217.  
  1218.     fclose(File);
  1219.  
  1220. }
  1221.  
  1222. //ulozi ktore misie su pristupne
  1223. //----------------------------------------------------------
  1224. void MENU::SaveArray(int MaxLevelIndex)
  1225. {
  1226.     if (MaxLevelIndex < MaxMission)
  1227.         return;
  1228.  
  1229.     FILE *File = NULL;
  1230.     File = fopen("menu/array.dat","w");
  1231.  
  1232.     fprintf(File,"%d",MaxLevelIndex);
  1233.  
  1234.     MaxMission = MaxLevelIndex;
  1235.  
  1236.     fclose(File);
  1237.  
  1238. }
  1239.  
  1240. //Vykresli Loading
  1241. //----------------------------------------------------------
  1242. void MENU::DrawLoading(int Prog, char *Text)
  1243. {
  1244.  
  1245.     Engine.BeginScene();
  1246.  
  1247.     //background
  1248.     BackGround.Center(Get3D(0.5f,0.5f,0.0f));
  1249.     BackGround.Render();
  1250.  
  1251.     //loading
  1252.     Loading.Pos.X = 400.0f;
  1253.     Loading.Pos.Y = 300.0f;
  1254.     Loading.Render();
  1255.  
  1256.     //progress
  1257.     for(int i=0;i<Prog;i++)
  1258.     {
  1259.         Progress.Pos.Y = 350.0f;
  1260.         Progress.Pos.X = 284.0f+(i*32);
  1261.         Progress.Render();
  1262.     }
  1263.  
  1264.     //skry kurzor
  1265.     ShowCursor(false);
  1266.     
  1267.     //font
  1268.     DxFont.PrintCenter(0,(int)(FTRY(390.0f)),
  1269.               GetColor(1.0f,0.28f,0.29f,0.25f),Text);
  1270.  
  1271.  
  1272.     Engine.EndScene();
  1273.  
  1274. }
  1275.  
  1276. //refresh celeho menu
  1277. //----------------------------------------------------------
  1278. void MENU::Refresh()
  1279. {
  1280.  
  1281.     //intro
  1282.     if (EnabledIntro)
  1283.         RefreshIntro();
  1284.  
  1285.     //main menu
  1286.     else if (EnabledMainMenu)
  1287.         RefreshMainMenu();
  1288.  
  1289.     //campaing
  1290.     else if (EnabledCampaing)
  1291.         RefreshCampaing();
  1292.  
  1293.     //becher game
  1294.     else if (EnabledBecherGame)
  1295.         RefreshBecherGame();
  1296.  
  1297.     //credits
  1298.     else if (EnabledCredits)
  1299.         RefreshCredits();
  1300.  
  1301. }